#include <iostream>
using namespace std;
int arr[12] = {2, 1, 5, 7, 1, 4, 6, 2, 7, 2, 67, 32};

void printArr(int arr[]){for (int i = 0; arr[i]; i++) printf("%d ", arr[i]);puts("");}

void swap(int &a, int &b) { a ^= b ^= a ^= b;}

void sort(int b, int e)
{
    if(b>e) return;
    int i = b + 1, j = e;
    while (i <= j)
    {
        while (arr[j] >= arr[b] && i <= j) j--;
        while (arr[i] <= arr[b] && i <= j) i++;
        if (arr[i] > arr[j] && i <= j) swap(arr[i], arr[j]);
    }
    if (arr[b] > arr[j]) swap(arr[j], arr[b]);
    sort(b,j-1);
    sort(j+1,e);
}
void quick(){sort(0, sizeof(arr) / sizeof(int)-1);}

int main(int argc, char const *argv[])
{
    printArr(arr);
    quick();
    printArr(arr);
    return 0;
}
